Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3

Общие приемы и механизмы решения задач – тема № 10:
Что такое актуальные остатки и возможные проблемы при их использовании

В данной главе рассмотрим, что такое актуальные остатки и какие проблемы могут возникнуть при их использовании. Все эксперименты будем проводить на конфигурации, разработанной в главе 9. Как выполнить контроль остатков по старой методике .

Что такое актуальные остатки

Рассмотрим, что такое актуальные остатки на примере регистра накопления ОстаткиНоменклатуры.

Структура регистра накопления ОстаткиНоменклатуры

Рисунок 1 – Структура регистра накопления ОстаткиНоменклатуры

Регистр накопления остатков состоит из двух таблиц:

  • Таблица движений
  • Таблица итогов.

Таблица движений

В таблице движений хранятся записи, сформированные при проведении документов. Таблица движений состоит из следующих полей:

  • Вид движения (Приход, Расход)
  • Период
  • Регистратор
  • Номер строки
  • Все измерения
  • Все ресурсы
  • Все реквизиты.

Чтобы увидеть, как выглядит таблица движений, достаточно открыть регистр накопления в пользовательском режиме.

Таблица движений регистра накопления ОстаткиНоменклатуры

Рисунок 2 – Таблица движений регистра накопления ОстаткиНоменклатуры

Таблица итогов

В таблице итогов хранятся остатки в разрезе всех измерений с периодичностью месяц (на начало месяца) и остатки на крайнюю дату – 01.11.3999. И это не ошибка – остатки будут на дату 01.11.3999, а не на 01.12.3999 или на 31.12.3999, как могло бы ожидаться. Именно остатки на дату 01.11.3999 называются актуальными остатками (также их называют текущими остатками).

Для регистра накопления ОстаткиНоменклатуры таблица итогов будет выглядеть следующим образом:

Период

Номенклатура Количество Сумма

01.10.2018 00:00:00

Big (капилярная) 10 1000

01.10.2018 00:00:00

Паркер “Golg” 5 2500

01.11.2018 00:00:00

Big (капилярная) 5 500

01.11.2018 00:00:00

Паркер “Golg” 5 2500

01.12.2018 00:00:00

Big (капилярная) 5 500

01.12.2018 00:00:00

Паркер “Golg” 5 2500

01.11.3999 00:00:00

Big (капилярная) 5 500

01.11.3999 00:00:00

Паркер “Golg” 5 2500

Управление итогами

В пользовательском режиме 1С:Предприятие можно управлять итогами. Для этого нужно открыть специальный инструмент Все функции – Стандартные – Управление итогами:

Открытие окна Управление итогами

Рисунок 3 – Открытие окна Управление итогами

Окно Управление итогами: полные возможности

Рисунок 4 – Окно Управление итогами: полные возможности

В данном окне можно отключить:

  • Использование итогов. При этом будут недоступны виртуальные таблицы регистра. При попытке к ним обратиться будет выдаваться ошибка.

Ошибка при обращении к виртуальным таблицам регистра

Рисунок 5 – Ошибка при обращении к виртуальным таблицам регистра

  • Использование текущих итогов. При этом в таблице итогов удалятся записи на дату 01.11.3999.

Отключение итогов используется когда нужно провести много документов по регистру. Так как в этом случае при проведении документа не будут пересчитываться итоги, операция выполнится быстрее. После выполнения данной операции необходимо обратно включить итоги по регистру. При этом итоги автоматически пересчитаются..

Как получить актуальные остатки

Чтобы получить актуальные остатки достаточно в запросе к виртуальной таблице остатков регистра накопления передать в качестве параметра Период пустую дату или Неопределено.

Пример:

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиНоменклатурыОстатки.Номенклатура, | ОстаткиНоменклатурыОстатки.КоличествоОстаток, | ОстаткиНоменклатурыОстатки.СуммаОстаток |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Период , ) КАК ОстаткиНоменклатурыОстатки"; Запрос.УстановитьПараметр("Период", Неопределено);

Преимущества использования актуальных остатков

Получение остатка на произвольную дату выполняется расчетным путем. Сначала из таблице итогов получается остаток на начало следующего месяца, затем из основной таблицы регистра (таблицы движений) получаются все движения от заданной даты до конца месяца и вычитаются из остатка на конец месяца.

Пример:

При получении остатка на 03.10.2018 сначала из таблицы итогов будут получены остатки на 01.11.2018, затем из таблицы движений получены все движения с 03.10.2018 по 31.10.2018 включительно и вычтены из полученного ранее остатка на 01.11.2018.

При получение актуальных остатков идет обращение только к таблице итогов. Так как актуальные остатки уже рассчитаны, получение их происходит быстрее. Поэтому при решении практических задач часто используют следующую конструкцию:

МоментВремениОстатков = ?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени()); Запрос.УстановитьПараметр("Период", МоментВремениОстатков)
Примечание. При оперативном проведении считается, что документ проводится в реальном времени поэтому можно использовать актуальные остатки. Оперативное проведение документов подробно рассмотрено в главе 1. Какие настройки проведения документов рекомендуется использовать на аттестации.

Недостатки использования актуальных остатков

При получении актуальных остатков мы можем получить недостоверные данные как минимум в трех случаях.

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии закрыты